package com.zhuzhumail.entity;

import com.alibaba.fastjson.annotation.JSONField;
import com.baomidou.mybatisplus.annotation.*;
import com.baomidou.mybatisplus.annotation.TableField;

import java.io.Serializable;
import java.util.Date;

import com.fasterxml.jackson.annotation.JsonFormat;

import lombok.Builder;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;
import org.springframework.validation.annotation.Validated;

import javax.validation.constraints.Max;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;

/**
 * 员工表
 *
 * @author Robot Generator
 * @email jack@kimmol.onaliyun.com
 * @date 2021-07-17 17:07:47
 */
@Data
@TableName("kq_employee")

public class KqEmployeeEntity implements Serializable {
	private static final long serialVersionUID = 1L;

	/**
	 * 主键ID
	 */
	@TableId(type = IdType.AUTO)
	private Long id;

	/**
	 * 密码
	 */

	@TableField("pass_word")
	private String password;
	/**
	 * 工号
	 */
	@Size(message = "工号长度不要大于20",max = 20)

	private String employeeCode;
	/**
	 * 姓名
	 */

 	private String fullName;
	/**
	 * 性别
	 */

	private String sex;


	private String thirdId;
	/**
	 * 出生日期
	 */
	@DateTimeFormat(pattern = "yyyy-MM-dd")
	@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd", timezone = "GMT+8")

	private Date birthdate;
	/**
	 * 民族
	 */
	private String ethnic;

	/**
	 * 政治面貌
	 */
	private String politicalStatus;
	/**
	 * 身份证号
	 */
	private String idCard;
	/**
	 * 状态（在职 离职）
	 */
	private String status;
	/**
	 * 手机号
	 */
	private String tel;
	/**
	 * 电子邮箱
	 */
	private String email;
	/**
	 * 所属部门ID
	 */
	private Long departmentId;
	/**
	 * 所属部门名称
	 */
	@TableField("department_name")
	private String departmentName;
	/**
	 * 职务
	 */
	@Size(message = "职务长度不要大于20",max = 20)
	private String position;
	/**
	 * 员工性质
	 */
	private String property;
	/**
	 * 分组名称
	 */
	@Size(message = "分组名称长度不要大于20",max = 20)
	private String groupName;
	/**
	 * 是否考勤 0 否 1 是
	 */
	private Integer isAttendance;
	/**
	 * 入职时间
	 */
	@TableField(updateStrategy = FieldStrategy.IGNORED)
	@DateTimeFormat(pattern = "yyyy-MM-dd ")
	@JSONField(format = "yyyy-MM-dd")
	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
	private Date entryDate;
	/**
	 * 离职时间
	 */
	@TableField(updateStrategy = FieldStrategy.IGNORED)
	@DateTimeFormat(pattern = "yyyy-MM-dd")
	@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd", timezone = "GMT+8")
	private Date departureDate;
	/**
	 * 备注
	 */
	@Size(message = "备注长度不要大于100",max = 100)
	private String remark;
	/**
	 * 人脸识别文件链接
	 */
	private String faceFileUrl;
	/**
	 * 声纹文件链接
	 */
	private String voiceprintFileUrl;
	/**
	 * 是否认证，0 未认证 1 已认证
	 */
	private Integer isApprove;
	/**
	 * 组织ID
	 */
	private Long deptId;
	/**
	 * 规则id
	 */
	private Long ruleId;
	/**
	 * 创建人ID
	 */
	private Long creator;
	/**
	 * 创建时间
	 */
	@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
	private Date createTime;
	/**
	 * 修改人ID
	 */
	private Long updater;
	/**
	 * 修改时间
	 */
	@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
	private Date updateTime;
	/**
	 * 是否删除，0 未删除，1已删除
	 */
	@TableLogic
	private Integer deleteFlag;
	private String avatarUrl;
	@TableField(exist = false)
	private String checkWorkAttAnce;



}
